<?php
namespace core\models;
/**
 * RPC客户端
 * @package core\models
 * @author  ZhouHaoHua <53027327@qq.com>
 * @package
 */
class Rpc_Client {
    /**
     * 静态单例调用
     * @param string $uri 服务器的资源地址
     * @param String $type 服务器端的RPC框架类型。默认使用 Yar来开放，以后可能会添加Hprose等这些方式
     * @return Rpc_C_Yar
     * @throws Exception
     */
    public static function get($uri, $type = 'Yar') {
        $tag = $type.($uri ? '_'.md5($uri) : '');
        if (empty(self::$c[$tag])) {
            if(is_string($type)){
                $class = 'core\models\Rpc_C_'.$type;
                if(class_exists($class, true)){
                    self::$c[$tag] = new $class($uri);
                }else{
                    //throw new \Exception('没发现此类：'.$className);
                    return false;
                }
            }
        }
        return self::$c[$tag];
    }
    protected function __construct(){
        die('禁止直接调用！');
    }
    protected static $c;
}